Restructure the code to make sense, and don't leak an empty accel.
authorMatthias Clasen <mclasen@redhat.com>
Tue, 24 Jul 2007 04:56:47 +0000 (04:56 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 24 Jul 2007 04:56:47 +0000 (04:56 +0000)
2007-07-24  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkmenubar.c (window_key_press_handler):
        * gtk/gtkmenu.c (gtk_menu_key_press): Restructure the code
        to make sense, and don't leak an empty accel.  (#459515, Owen Taylor)

svn path=/trunk/; revision=18535

ChangeLog
gtk/gtkmenu.c
gtk/gtkmenubar.c

index 114d9bb85c95371d4a76cd2428b98000bd797022..7b6ba7fb405bb4f76bfdd582f69759e3a620d92f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-07-24  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkmenubar.c (window_key_press_handler):
+       * gtk/gtkmenu.c (gtk_menu_key_press): Restructure the code
+       to make sense, and don't leak an empty accel.  (#459515, Owen Taylor)
+
 2007-07-23  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktooltip.c (gtk_tooltip_set_custom): Protect against
index 66fd3108dfa6d45c100d62e62b4bcd5794e0acbe..6e99ce0bf1cda3b8cf95e2ff0c3f56f7cb3b8324 100644 (file)
@@ -2786,7 +2786,6 @@ gtk_menu_key_press (GtkWidget     *widget,
     {
       guint keyval = 0;
       GdkModifierType mods = 0;
-      gboolean handled = FALSE;
       
       gtk_accelerator_parse (accel, &keyval, &mods);
 
@@ -2797,15 +2796,15 @@ gtk_menu_key_press (GtkWidget   *widget,
        * thing, to properly consider i18n etc., but that probably requires
        * AccelGroup changes etc.
        */
-      if (event->keyval == keyval &&
-          (mods & event->state) == mods)
-       gtk_menu_shell_cancel (menu_shell);
-
-      g_free (accel);
-
-      if (handled)
-        return TRUE;
+      if (event->keyval == keyval && (mods & event->state) == mods)
+        {
+         gtk_menu_shell_cancel (menu_shell);
+          g_free (accel);
+          return TRUE;
+        }
     }
+
+  g_free (accel);
   
   switch (event->keyval)
     {
index ad8fc2e68b876cfba1d112ef8791dfad2fed2695..6cf8a04103c5721862061080239bf65a03543e8e 100644 (file)
@@ -634,10 +634,10 @@ window_key_press_handler (GtkWidget   *widget,
              retval = TRUE;          
            }
         }
-
-      g_free (accel);
     }
 
+  g_free (accel);
+
   return retval;
 }